package net.zdsoft.wpchat.android.util;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.zdsoft.keel.util.Validators;

/**
 * Json简单处理封装
 * 
 * @author xuan
 * @version $Revision: 1.0 $, $Date: 2013-1-31 下午1:39:11 $
 */
public abstract class JsonUtils {

    /**
     * 返回结果
     * 
     * @param code
     * @param message
     * @return
     */
    public static String getRet(String code, String message) {
        JSONObject ret = new JSONObject();
        ret.put("success", code);
        ret.put("message", message);
        return ret.toString();
    }

    /**
     * 获取json的错误提示，（废弃的原因是，IOS不在需要返回reqUnique了）
     * 
     * @param error
     * @param reqUnique
     * 
     * @return
     */
    @Deprecated
    public static String getError(String error, String reqUnique) {
        JSONObject ret = new JSONObject();
        ret.put("success", "0");
        ret.put("message", error);
        if (!Validators.isEmpty(reqUnique)) {
            ret.put("reqUnique", reqUnique);
        }

        return ret.toString();
    }

    /**
     * 获取json的错误提示
     * 
     * @param error
     * @return
     */
    public static String getError(String error) {
        JSONObject ret = new JSONObject();
        ret.put("success", "0");
        ret.put("message", error);
        return ret.toString();
    }

    /**
     * 获取json的消息提示（废弃原因是IOS不在需要返回requnique）
     * 
     * @param message
     * @param reqUnique
     * @return
     */
    @Deprecated
    public static String getMessage(String message, String reqUnique) {
        JSONObject ret = new JSONObject();
        ret.put("success", "1");
        ret.put("message", message);
        if (!Validators.isEmpty(reqUnique)) {
            ret.put("reqUnique", reqUnique);
        }

        return ret.toString();
    }

    /**
     * 获取json的消息提示
     * 
     * @param message
     * @return
     */
    public static String getMessage(String message) {
        JSONObject ret = new JSONObject();
        ret.put("success", "1");
        ret.put("message", message);
        return ret.toString();
    }

    public static String getString(JSONObject jsonObject, String name) throws Exception {
        return jsonObject.has(name) ? jsonObject.getString(name) : "";
    }

    public static int getInt(JSONObject jsonObject, String name) throws Exception {
        return jsonObject.has(name) ? jsonObject.getInt(name) : 0;
    }

    public static boolean getBoolean(JSONObject jsonObject, String name) throws Exception {
        return jsonObject.has(name) ? jsonObject.getBoolean(name) : false;
    }

    public static double getDouble(JSONObject jsonObject, String name) throws Exception {
        return jsonObject.has(name) ? jsonObject.getDouble(name) : 0;
    }

    public static long getLang(JSONObject jsonObject, String name) throws Exception {
        return jsonObject.has(name) ? jsonObject.getLong(name) : 0;
    }

    public static JSONObject getJSONObject(JSONObject jsonObject, String name) throws Exception {
        return jsonObject.has(name) ? jsonObject.getJSONObject(name) : null;
    }

    public static JSONArray getJSONArray(JSONObject jsonObject, String name) throws Exception {
        return jsonObject.has(name) ? jsonObject.getJSONArray(name) : null;
    }

}
